/*
 * @Author: Suo-Yuheng syh15399227325@163.com
 * @Date: 2025-09-10 11:22:21
 * @LastEditors: Suo-Yuheng syh15399227325@163.com
 * @LastEditTime: 2025-09-10 11:22:22
 * @FilePath: /0909/ServerCal.cc
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

#include <iostream>
#include <string>
#include "TcpServer.hpp"
#include "ServerCal.hpp"
#include <unistd.h>

void Usage(const std::string &proc)
{
    std::cout << "\nUsage: " << proc << "  port[1024+]" << std::endl;
}

// ./servercal port
int main(int argc, char *argv[])
{
    if(argc != 2)
    {
        Usage(argv[0]);
        exit(0);
    }
    uint16_t port = std::stoi(argv[1]);

    ServerCal cal;
    TcpServer *tsvp = new TcpServer(port, std::bind(&ServerCal::Calculator, &cal, std::placeholders::_1));  // 绑定回调方法
    tsvp->InitServer();

    daemon(0, 0);   // 守护进程

    tsvp->Start();


    return 0;
}





// int main()
// {
//     // 测试 Response
//     Response resp(1000, 0);
//     std::string s;
//     resp.Serialize(&s);
//     s = Encode(s);
//     std::cout << s;
//     std::cout << std::endl;

//     std::string content;
//     bool b = Decode(s, &content);
//     // content ---> "x op y"
//     std::cout << content;
//     std::cout << std::endl;

//     Response temp;
//     temp.Deserialize(content);
//     std::cout << temp.result << " " << temp.code;
//     std::cout << std::endl;


//     return 0;
// }




// int main()
// {   // 测试 Request
//     // Request req(123, 456, '+');

//     // std::string s;
//     // req.Serialize(&s);

//     // s = Encode(s);

//     // std::cout << s;
//     // std::cout << std::endl;
    
//     // std::string content;
//     // bool b = Decode(s, &content);
//     // // content ---> "x op y"
//     // std::cout << content;
//     // std::cout << std::endl;

//     // Request temp;
//     // temp.Deserialize(content);
//     // std::cout << temp.x << temp.op << temp.y;
//     // std::cout << std::endl;
    

//     return 0;
// }